import { buildingType, raceType } from "../settings/const";

/**
 * require 要求其他建筑物的等级
 * multiple 允许建造多个
 * exclude 排除的建筑物（不能与其共存）
 * only 唯一，所有村庄中唯一的建筑物
 * raceType 要求的种族
 * sub 只能建在附属村庄，不能建在主村
 * main 只能建在住村，不能建在附属村
 * noneOrMaxLevel 满级了，才能再建造一个。例如：已经有谷仓，但尚未到20级（满级），不能再建造谷仓
 * uid uid表示位置，某些建筑物建在特定的位置
 */
export const BuildingCondition = {
    //中心大楼
    [buildingType.B15_MainBuilding]: {
        uid: 26
    },
    // 集结点
    [buildingType.B16_RallyPoint]: {
        uid: 39
    },
    //英雄别院，要求中心大楼3级，集结点1级
    [buildingType.B37_HeroMasion]: {
        require: { [buildingType.B15_MainBuilding]: 3, [buildingType.B16_RallyPoint]: 1 },

    },
    //面包房，要求农场最大级别10，磨坊5，中心大楼5
    [buildingType.B09_Bakery]: {
        require: { [buildingType.B08_GrainMill]: 5, [buildingType.B15_MainBuilding]: 5, [buildingType.B04_Food]: 10 }
    },
    //砖块场，要求粘土矿最大级别10，中心大楼5
    [buildingType.B06_Brickyard]: {
        require: { [buildingType.B02_Mud]: 10, [buildingType.B15_MainBuilding]: 5 }
    },
    //磨坊，要求农场最大级别5
    [buildingType.B08_GrainMill]: {
        require: { [buildingType.B04_Food]: 5 }
    },
    //谷仓，要求中心大楼1
    [buildingType.B11_Granary]: {
        require: { [buildingType.B15_MainBuilding]: 1, },
        multiple: true,
        noneOrMaxLevel: true
    },
    //仓库，要求中心大楼1
    [buildingType.B10_Warehouse]: {
        require: { [buildingType.B15_MainBuilding]: 1 },
        multiple: true,
        noneOrMaxLevel: true
    },
    //山洞
    [buildingType.B23_Cranny]: {
        multiple: true,
        noneOrMaxLevel: true
    },


    //陷阱
    [buildingType.B36_Trapper]: {
        multiple: true,
        noneOrMaxLevel: true,
        raceType: raceType.Gaul
    },
    //铸造场，要求铁矿最大级别10，中心大楼5
    [buildingType.B07_Foundry]: {
        require: { [buildingType.B03_Iron]: 10, [buildingType.B15_MainBuilding]: 5 }
    },
    //木材场，要求木头矿最大级别10，中心大楼5
    [buildingType.B05_Sawmill]: {
        require: { [buildingType.B01_Wood]: 10, [buildingType.B15_MainBuilding]: 5 }
    },
    //会馆，要求中心大楼1
    [buildingType.B18_Embassy]: {
        require: { [buildingType.B15_MainBuilding]: 1 }
    },
    //市场，要求中心大楼3，仓库1，谷仓1
    [buildingType.B17_Market]: {
        require: { [buildingType.B15_MainBuilding]: 3, [buildingType.B11_Granary]: 1, [buildingType.B10_Warehouse]: 1 }
    },
    //交易所，要求市场20，马厩10
    [buildingType.B28_TradeOffice]: {
        require: { [buildingType.B17_Market]: 20, [buildingType.B20_Stable]: 10 }
    },
    //小宫殿，要求中心大楼5，没有大宫殿
    [buildingType.B25_Residence]: {
        require: { [buildingType.B15_MainBuilding]: 5 },
        exclude: buildingType.B26_Palace,
        sub:true,
        uid: 38
    },
    //大宫殿，要求中心大楼5，会馆1，没有小宫殿，并且要求当前玩家所有村子中都没有大宫殿（包括在建中的）
    [buildingType.B26_Palace]: {
        require: { [buildingType.B15_MainBuilding]: 5, [buildingType.B18_Embassy]: 1 },
        exclude: buildingType.B25_Residence,
        only: true,
        main:true,
        uid: 38
    },
    //石匠铺，要求中心大楼5，大宫殿等级3
    [buildingType.B34_Stonemason]: {
        require: { [buildingType.B15_MainBuilding]: 5, [buildingType.B26_Palace]: 3 }
    },

    //研究所，要求兵营3，中心大楼3
    [buildingType.B22_Academy]: {
        require: { [buildingType.B15_MainBuilding]: 3, [buildingType.B19_Barracks]: 3 }
    },
    //军械库，要求研究所1
    [buildingType.B13_Armoury]: {
        require: { [buildingType.B22_Academy]: 1 }
    },

    //兵营，要求中心大楼3，集结点1
    [buildingType.B19_Barracks]: {
        require: { [buildingType.B15_MainBuilding]: 3, [buildingType.B16_RallyPoint]: 1 }
    },
    //铁匠铺，要求研究院3
    [buildingType.B12_Blacksmith]: {
        require: { [buildingType.B22_Academy]: 3 }
    },
    //马厩，要求研究院5，铁匠铺3
    [buildingType.B20_Stable]: {
        require: { [buildingType.B12_Blacksmith]: 3, [buildingType.B22_Academy]: 5 }
    },
    //竞技场，要求集结点15
    [buildingType.B14_Arena]: {
        require: { [buildingType.B16_RallyPoint]: 15 }
    },
    //工场，要求研究院10，中心大楼5
    [buildingType.B21_Workshop]: {
        require: { [buildingType.B22_Academy]: 10, [buildingType.B15_MainBuilding]: 5 }
    },
    //罗马城墙，要求罗马种族，并且先前没有造过城墙
    [buildingType.B31_H_Wall]: {
        raceType: raceType.Rome,
        uid: 40,
    },
    //日族城墙，要求日族
    [buildingType.B32_X_Wall]: {
        raceType: raceType.Teuton,
        uid: 40,
    },
    //高卢城墙，要求高卢种族
    [buildingType.B33_M_Wall]: {
        raceType: raceType.Gaul,
        uid: 40,
    },
    //大兵营，要求兵营20，非主村
    [buildingType.B29_G_Barracks]: {
        require: { [buildingType.B19_Barracks]: 20 },
        sub: true
    },
    //大马厩，要求马厩20，非主村
    [buildingType.B30_G_Stable]: {
        require: { [buildingType.B20_Stable]: 20 },
        sub: true
    },

    //大仓库
    [buildingType.B38_G_Warehouse]: {
        require: { [buildingType.B27_Treasury]: 20 },
        main: true,
        multiple: true,
    },
    // 大谷仓  需要货栈科技 20级
    [buildingType.B39_G_Granary]: {
        tech: {46: 20},
        main: true,
        multiple: true,
    },
    //宝库
    [buildingType.B27_Treasury]: {
        require: { [buildingType.B15_MainBuilding]: 10 },
    },

    // 祭坛
    [buildingType.B24_TownHall]:{

    }
}
